﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Jayden.Dll.Core.Collections.Generic
{
	public interface ITree<T>
	{
		ITree<T> Parent { get; set; }
		T Value { get; set; }
		ITree<T> this[int index] { get; set; }
		int Count { get; }
		bool IsLeaf { get; }
		bool IsRoot { get; }
		ITree<T> Root { get; }
		void AddChild(ITree<T> child);
		bool RemoveChild(ITree<T> child);
	}
}
